# 5G PCIe网卡 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- 本文以连接RM520N-GL PCIe网卡为例,介绍如何在 **Quectel Pi H1** 智能主控板上通过PCIe接口连接5G网卡,并完成网络配置和拨号上网。 # 硬件接口及准备 ```{image} images/image_FUn7blhQVoCWxGxsuoEcZpVJnsf.webp :width: 836px :height: 491px ``` 开始操作前,请确认已准备好以下硬件: - Quectel Pi H1智能主控板 - RM520N-GL PCIe网卡 - PCIe转接线 - Type-C-to-Type-A USB数据线 - 5G天线 - 有效的SIM卡 # 快速开始 ## 连接硬件 1. 将RM520N-GL PCIe网卡转接线完全均匀地插入智能主控板的PCIe端口。 2. 从两侧向下推动PCIe接口支架,确保PCIe转接线牢牢固定到位。 3. 使用TYPE-C To USB线连接至Windows PC。初次使用可能需要安装USB驱动(驱动文件由模块技术支持提供,请根据模块型号选择正确的驱动文件)。 ```{image} images/image_PMzzblLRzoehCXxtV5Fcw8kIn6b.webp :width: 1920px :height: 1437px ``` # 功能使用 ## PCIe模块配置 使用PCIe直通转接卡时,必须把模块设置成PCIe-EP模式,否则无法与Quectel Pi H1的PCIe接口通信。安装模块驱动后,通过转接板的USB口连接5G模块,输入AT指令,将其切换到PCIe-EP模式,操作如下: ### 连接AT端口 1. 在Windows PC的 **设备管理器** 中,找到显示为“Quectel USB AT Port (COMxxx)”的端口。 2. 然后,使用串口工具打开该AT端口。 ### 执行配置命令 1. 执行如下配置命令: ```shell AT+QCFG="data_interface",1,0 AT+QCFG="pcie/mode",0 AT+QCFG="usbnet",2 AT+CFUN=1,1 ``` 2. 执行完成后,断开PC端的USB线,重新给主控板上电。 ### 验证PCIe设备识别情况 通过Shell口使用如下命令并核对输出: 1. 检查PCIe总线设备识别情况。 执行命令: ```shell lspci ``` 正常输出示例: ```shell root@QuectelPi:~# lspci 0000:00:00.0 PCI bridge: Qualcomm Device 010b 0000:01:00.0 Ethernet controller: Device 1f0a:6801 (rev 01) 0001:00:00.0 PCI bridge: Qualcomm Device 010b 0001:01:00.0 Unassigned class [ff00]: Qualcomm Device 0308 ``` 2. 检查MHI调制解调器接口识别情况。 执行命令: ```shell ls /dev/mhi* ``` 正常输出示例: ```shell root@QuectelPi:~# ls /dev/mhi* /dev/mhi_BHI /dev/mhi_DIAG /dev/mhi_DUN /dev/mhi_LOOPBACK /dev/mhi_QMI0 ``` 3. 若以上设备均已被成功识别,则可以正常执行拨号操作。 ## 拨号上网 ### 拨号前准备 - 已为5G模块连接天线。 - 已插入SIM卡。 - 信号正常(避免信号较差导致注网失败)。 ```{image} images/image_SQJRbSLxYopI3ex6hUhc9VEFnmb.webp :width: 1920px :height: 1438px ``` ### 使用quectel-CM拨号 后台运行quectel-CM命令进行拨号。 ```shell root@QuectelPi:~# quectel-CM &[2] 1303 root@QuectelPi:~# [01-01_00:07:55:168] QConnectManager_Linux_V1.6.7[01-01_00:07:55:179] network interface '' or qmidev '' is not exist [01-01_00:07:55:179] netcard driver = pcie_mhi, driver version = V1.3.7 [01-01_00:07:55:179] qmap_mode = 1, qmap_version = 9, qmap_size = 15360, muxid = 0x81, qmap_netcard = rmnet_mhi0.1 [01-01_00:07:55:179] Modem works in QMI mode [01-01_00:07:55:193] /proc/1273/fd/7 -> /dev/mhi_QMI0 [01-01_00:07:55:193] /proc/1273/exe -> /usr/bin/quectel-CM [01-01_00:07:55:193] requestDeactivateDefaultPDP WdsConnectionIPv4Handle [01-01_00:07:55:424] ip link set dev rmnet_mhi0 down [01-01_00:07:55:431] ip addr flush dev rmnet_mhi0.1 [01-01_00:07:55:436] ip link set dev rmnet_mhi0.1 down [01-01_00:07:55:457] QmiWwanThread exit[01-01_00:07:55:459] qmi_main exit[01-01_00:07:57:196] cdc_wdm_fd = 7[01-01_00:07:57:208] Get clientWDS = 15[01-01_00:07:57:212] Get clientDMS = 1[01-01_00:07:57:215] Get clientNAS = 4[01-01_00:07:57:219] Get clientUIM = 3[01-01_00:07:57:224] Get clientWDA = 1[01-01_00:07:57:229] requestBaseBandVersion RM520NGLABR03A02M8G [01-01_00:07:57:232] qmap_settings.rx_urb_size = 15360[01-01_00:07:57:233] qmap_settings.ul_data_aggregation_max_datagrams = 11[01-01_00:07:57:233] qmap_settings.ul_data_aggregation_max_size = 8192[01-01_00:07:57:233] qmap_settings.dl_minimum_padding = 0[01-01_00:07:57:248] requestGetSIMStatus SIMStatus: SIM_READY [01-01_00:07:57:257] requestGetProfile[pdp:1 index:1] ctnet///0/IPV4V6 [01-01_00:07:57:261] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: 5G_SA [01-01_00:07:57:265] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED [01-01_00:07:57:265] ip link set dev rmnet_mhi0 down [01-01_00:07:57:272] ip addr flush dev rmnet_mhi0.1 [01-01_00:07:57:277] ip link set dev rmnet_mhi0.1 down [01-01_00:07:57:768] requestSetupDataCall WdsConnectionIPv4Handle: 0xe27891d0 [01-01_00:07:57:783] ip link set dev rmnet_mhi0 up [ 473.062494][ T1311] [I][mhi_netdev_open] Opened net dev interface [01-01_00:07:57:797] ip link set dev rmnet_mhi0.1 up [01-01_00:07:57:803] busybox udhcpc -f -n -q -t 5 -i rmnet_mhi0.1 udhcpc: started, v1.35.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 100.98.134.67, server 100.98.134.68 udhcpc: lease of 100.98.134.67 obtained from 100.98.134.68, lease time 7200[01-01_00:07:57:883] /etc/udhcpc.d/50default: Adding DNS 202.102.213.68 [01-01_00:07:57:883] /etc/udhcpc.d/50default: Adding DNS 61.132.163.68 ``` 当底部的udhcpc获取到IP地址后,表明设备已成功获得基站分配的IP,网络连接建立成功。 接下来,使用ifconfig和ping命令验证网络连接: ```shell root@QuectelPi:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:55:7B:B5:7D:F7 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:166 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:50 errors:0 dropped:0 overruns:0 frame:0 TX packets:50 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4632 (4.5 KiB) TX bytes:4632 (4.5 KiB) p2p0 Link encap:Ethernet HWaddr 02:03:7F:D6:00:01 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) rmnet_mhi0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet6 addr: fe80::6921:e40e:336d:a80e/64 Scope:Link UP RUNNING NOARP MTU:1500 Metric:1 RX packets:14 errors:0 dropped:0 overruns:0 frame:0 TX packets:23 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4464 (4.3 KiB) TX bytes:5204 (5.0 KiB) rmnet_mhi0.1 Link encap:Ethernet HWaddr 02:50:F4:00:00:01 inet addr:100.98.134.67 Mask:255.255.255.248 inet6 addr: fe80::50:f4ff:fe00:1/64 Scope:Link UP RUNNING NOARP MTU:1500 Metric:1 RX packets:14 errors:0 dropped:0 overruns:0 frame:0 TX packets:23 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4330 (4.2 KiB) TX bytes:5334 (5.2 KiB) wlan0 Link encap:Ethernet HWaddr 00:03:7F:50:00:01 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) root@QuectelPi:~# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=113 time=5006.075 ms 64 bytes from 8.8.8.8: seq=5 ttl=113 time=485.806 ms 64 bytes from 8.8.8.8: seq=6 ttl=113 time=190.026 ms 64 bytes from 8.8.8.8: seq=13 ttl=113 time=628.962 ms 64 bytes from 8.8.8.8: seq=14 ttl=113 time=542.605 ms 64 bytes from 8.8.8.8: seq=15 ttl=113 time=585.632 ms 64 bytes from 8.8.8.8: seq=16 ttl=113 time=796.018 ms 64 bytes from 8.8.8.8: seq=17 ttl=113 time=95.139 ms 64 bytes from 8.8.8.8: seq=18 ttl=113 time=837.369 ms 64 bytes from 8.8.8.8: seq=19 ttl=113 time=41.186 ms ```